home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / vol_300 / 313_01 / stevie.mm < prev    next >
Text File  |  1990-04-21  |  23KB  |  693 lines

  1. .\" $Header: /r3/tony/src/stevie/src/RCS/stevie.mm,v 3.72 90/01/22 19:11:56 tony Exp $
  2. .\"
  3. .\" Documentation for STEVIE. Process with nroff using the mm macros.
  4. .\"
  5. .nr Hu 1
  6. .SA 1
  7. .TL
  8. STEVIE - An Aspiring VI Clone
  9. .sp
  10. User Reference - 3.71
  11. .AU "Tony Andrews"
  12. .AF ""
  13. .MT 4
  14. .PH "'STEVIE''User Reference'"
  15. .PF "''- \\\\n% -''"
  16. .H 1 "Overview"
  17. STEVIE is an editor designed to mimic the interface of the UNIX
  18. editor 'vi'. The name (ST Editor for VI Enthusiasts) comes from the fact that
  19. the editor was first written for the Atari ST. The current version also supports
  20. UNIX, Minix (ST), MS-DOS, and OS/2, but I've left
  21. the name intact for now.
  22. .P
  23. This program is the result of many late nights of hacking over the last
  24. couple of years.
  25. The first version was written by Tim Thompson and posted
  26. to USENET. From there, I reworked the data structures completely, added
  27. LOTS of features, and generally improved the overall performance in the
  28. process.
  29. .P
  30. I've labelled STEVIE an 'aspiring' vi clone as a warning to those who
  31. may expect too much. On the whole, the editor is pretty complete.
  32. Nearly all of the visual mode commands are supported.
  33. And several of the more important 'ex' commands are supported as well.
  34. I've tried hard to
  35. capture the feel of vi by getting the little things right.
  36. Making lines
  37. wrap correctly, supporting true operators, and even getting the cursor to
  38. land on the right place for tabs are all a pain, but really help make
  39. the editor feel right.
  40. I've tried to resist the temptation to deviate from the behavior
  41. of vi, even where I disagree with the original design.
  42. .P
  43. The biggest problem remaining has to do with the fact that the edit buffer
  44. is maintained entirely in memory, limiting the size of files that can
  45. be edited in some environments.
  46. Other missing features include named buffers and macros.
  47. Performance is generally reasonable, although the screen update code
  48. could be more efficient.
  49. This is generally only visible on fairly slow systems.
  50. .P
  51. STEVIE may be freely distributed. The source isn't copyrighted or
  52. restricted in any way. If you pass the program along, please include all
  53. the documentation and, if practical, the source as well. I'm not fanatical
  54. about this, but I tried to make STEVIE fairly portable and I'd like to
  55. see as many people have access to the source as possible.
  56. .P
  57. The remainder of this document describes the operation of the editor.
  58. This is intended as a reference for users already familiar with the real
  59. vi editor.
  60. .H 1 "Starting the Editor"
  61. The following command line forms are supported:
  62. .VL 20
  63. .LI "stevie [file ...]"
  64. Edit the specified file(s)
  65. .LI "stevie -t tag"
  66. Start at the location of the given tag
  67. .LI "stevie + file"
  68. Edit file starting at end
  69. .LI "stevie +n file"
  70. Edit file starting a line number 'n'
  71. .LI "stevie +/pat file"
  72. Edit file starting at pattern 'pat'
  73. .LE
  74. .P
  75. If multiple files are given on the command line (using the first form),
  76. the ":n" command goes to the next file, ":N" goes backward in the list,
  77. and ":rew" can be used to rewind back to the start of the file list.
  78. .H 1 "Set Command Options"
  79. The ":set" command works as usual to set parameters. Each parameter has
  80. a long and an abbreviated name, either of which may be used. Boolean
  81. parameters are set as in:
  82. .sp
  83. .ti +5
  84. set showmatch
  85. .sp
  86. or cleared by:
  87. .sp
  88. .ti +5
  89. set noshowmatch
  90. .sp
  91. Numeric parameters are set as in:
  92. .sp
  93. .ti +5
  94. set scroll=5
  95. .sp
  96. Several parameters may be set with a single command:
  97. .sp
  98. .ti +5
  99. set novb sm report=1
  100. .P
  101. To see the status of all parameters use ":set all". Typing ":set" with
  102. no arguments will show only those parameters that have been changed.
  103. The supported parameters, their names, abbreviations, defaults,
  104. and descriptions are shown below:
  105. .VL 12
  106. .LI autoindent
  107. Short: ai, Default: noai, Type: Boolean
  108. .br
  109. When in insert mode, start new lines at the same column as the prior
  110. line. Unlike vi, you can backspace over the indentation.
  111. .LI backup
  112. Short: bk, Default: nobk, Type: Boolean
  113. .br
  114. Leave a backup on file writes.
  115. .LI errorbells
  116. Short: eb, Default: noeb, Type: Boolean
  117. .br
  118. Ring bell when error messages are shown.
  119. .LI ignorecase
  120. Short: ic, Default: noic, Type: Boolean
  121. .br
  122. Ignore case in string searches.
  123. .LI lines
  124. Short: lines, Default: lines=25, Type: Numeric
  125. .br
  126. Number of physical lines on the screen. The default value actually
  127. depends on the host machine, but is generally 25.
  128. .LI list
  129. Short: list, Default: nolist, Type: Boolean
  130. .br
  131. Show tabs and newlines graphically.
  132. .LI modelines
  133. Short: ml, Default: noml, Type: Boolean
  134. .br
  135. Enable processing of modelines in files.
  136. .LI number
  137. Short: nu, Default: nonu, Type: Boolean
  138. .br
  139. Display lines on the screen with their line numbers.
  140. .LI report
  141. Short: report, Default: report=5, Type: Numeric
  142. .br
  143. Minimum number of lines to report operations on.
  144. .LI return
  145. Short: cr, Default: cr, Type: Boolean
  146. .br
  147. End lines with cr-lf when writing files.
  148. .LI scroll
  149. Short: scroll, Default: scroll=12, Type: Numeric
  150. .br
  151. Number of lines to scroll for ^D & ^U.
  152. .LI showmatch
  153. Short: sm, Default: nosm, Type: Boolean
  154. .br
  155. When a ), }, or ] is typed, show the matching (, {, or [ if
  156. it's on the current screen by moving the cursor there briefly.
  157. .LI showmode
  158. Short: mo, Default: nomo, Type: Boolean
  159. .br
  160. Show on status line when in insert mode.
  161. .LI tabstop
  162. Short: ts, Default: ts=8, Type: Numeric
  163. .br
  164. Number of spaces in a tab.
  165. .LI terse
  166. Short: terse, Default: noterse, Type: Boolean
  167. .br
  168. This option is currently ignored.
  169. It is provided only for compatibility with vi.
  170. .LI tildeop
  171. Short: to, Default: noto, Type: Boolean
  172. .br
  173. If set, tilde is an operator. Otherwise, tilde acts as normal.
  174. .LI wrapscan
  175. Short: ws, Default: ws, Type: Boolean
  176. .br
  177. String searches wrap around the ends of the file.
  178. .LI vbell
  179. Short: vb, Default: vb, Type: Boolean
  180. .br
  181. Use a visual bell, if possible. (novb for audible bell)
  182. .LE
  183. .P
  184. The EXINIT environment variable can be used to modify the default values
  185. on startup as in:
  186. .sp
  187. .ti +5
  188. setenv EXINIT="set sm ts=4"
  189. .P
  190. The 'backup' parameter, if set, causes the editor to retain a backup of any
  191. files that are written. During file writes, a backup is always kept for
  192. safety until the write is completed. At that point, the 'backup' parameter
  193. determines whether the backup file is deleted.
  194. .P
  195. In environments (e.g. OS/2 or TOS) where lines are normally terminated by
  196. CR-LF, the 'return' parameter allows files to be written with only a LF
  197. terminator (if the parameter is cleared).
  198. This parameter is ignored on UNIX systems.
  199. .P
  200. The 'lines' parameter tells the editor how many lines there are on the screen.
  201. This is useful on systems like the ST (or OS/2 machines with an EGA adapter)
  202. where various screen resolutions may be
  203. used. By using the 'lines' parameter, different screen sizes can be easily
  204. handled.
  205. .H 1 "Colon Commands"
  206. Several of the normal 'vi' colon commands are supported by STEVIE.
  207. Some commands may be preceded by a
  208. line range specification.
  209. For commands that accept a range of lines,
  210. the following address forms are supported:
  211. .DS 1
  212. addr
  213. addr + number
  214. addr - number
  215. .DE
  216. where 'addr' may be one of the following:
  217. .DS 1
  218. a line number
  219. a mark (as in 'a or 'b)
  220. \'.' (the current line)
  221. \'$' (the last line)
  222. .DE
  223. .P
  224. An address range of "%" is accepted as an abbreviation of "1,$".
  225. .H 2 "Mode Lines"
  226. Mode lines are a little-known, but often useful, feature of vi.
  227. To use this feature, special strings are placed in the first or
  228. last five lines in a file.
  229. When the file is edited, these strings are detected and processed
  230. as though typed as a colon command.
  231. One instance where this can be useful is to set the "tabstop"
  232. parameter on a per-file basis.
  233. The following are examples of mode lines:
  234. .DS 1
  235. vi:set ts=4 noai:
  236. ex:45:
  237. .DE
  238. .P
  239. Mode lines are characterized by the string "vi" or "ex" followed
  240. by a command surrounded by colons. Other text may appear on the
  241. line, and multiple mode lines may be present. No guarantee is
  242. made regarding the order in which multiple mode lines will be
  243. processed.
  244. .P
  245. The processing of mode lines